using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("MusicManager")]
	public class MusicManager : MonoBehaviour
	{
		public MusicPlaylistType m_currentPlaylist => method_2<MusicPlaylistType>("m_currentPlaylist");

		public MusicManager(IntPtr address, string className)
			: base(address, className)
		{
		}

		public MusicManager(IntPtr address)
			: this(address, "MusicManager")
		{
		}

		public static MusicManager Get()
		{
			return MonoClass.smethod_15<MusicManager>(TritonHs.MainAssemblyPath, "", "MusicManager", "Get", Array.Empty<object>());
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void Start()
		{
			method_8("Start");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public bool StartPlaylist(MusicPlaylistType type)
		{
			return method_11<bool>("StartPlaylist", new object[1] { type });
		}

		public bool StopPlaylist()
		{
			return method_11<bool>("StopPlaylist", Array.Empty<object>());
		}

		public MusicPlaylistType GetCurrentPlaylist()
		{
			return method_11<MusicPlaylistType>("GetCurrentPlaylist", Array.Empty<object>());
		}

		public void WillReset()
		{
			method_8("WillReset");
		}

		public MusicPlaylist FindPlaylist(MusicPlaylistType type)
		{
			return method_14<MusicPlaylist>("FindPlaylist", new object[1] { type });
		}
	}
}
